1. Field of the Invention
The present invention relates to mirroring, and in particular relates to dynamically switching between mirrored and non-mirrored implementations in a network appliance, such as a network server.
2. Background Information
Fault tolerance is important in many systems, particular for servers. One method of providing fault tolerance is to use a Redundant Array of Independent Disks (RAID). For example, a system using RAID 1 writes data simultaneously to two duplicate disk drives. This way, if one of the disk drives fail, the system can instantly switch to using the other disk drive without any loss of data or service.
There are, however, disadvantages associated with using current mirroring methods, particularly with switching between non-mirrored and mirrored implementations. Setting up a standalone drive for mirroring is a lengthy, tedious, and costly process. First, a user installs a second drive and formats it for mirroring mode. Second, all the system files and data from the first drive are copied to the second drive. Third, the system is switched over to using the second drive instead of the first drive, which may include subsequently rebooting the system. Fourth, the first drive is reformatted from standalone mode to mirroring mode. Fifth, the mirror is activated and data is allowed to propagate from the second drive to the first drive for mirror synchronization. Finally, data can be written simultaneously to both drives.
If a user decides to opt for more storage rather than redundancy provided by mirroring, the process of switching from mirroring mode back to standalone mode is similarly tedious. First, the mirror is deactivated. Second, the system is switched over to operate off of the second drive. Third, the first drive is reformatted for standalone mode. Fourth, all the system files and data from the second drive are copied to the first drive. Fifth, the system is switched to using the first drive in standalone mode. Sixth, the second drive is reformatted for standalone mode. Finally, the second drive can be added into the system for additional storage.
Therefore, it is clear that existing methods to format a system for mirroring and to switch the system between mirrored and non-mirrored implementations are inconvenient and complicated.